package object3;

/**
 * 内部类
 *
 * class Outer{ //外部类
 *     class Inner{ //内部类
 *
 *     }
 * }
 *
 * class Other{ //外部其他类
 *
 * }
 */
public class InnerClass {

    public static void main(String[] args) {

        /*
            一个类的内部又完整嵌套另一个类。
            被嵌套的类称为内部类(inner class),嵌套在其他类的类称为外部类(outer class)
            至此，类的五大成员有：属性 方法 构造器 代码块 内部类
            内部类的最大特点就是可以直接访问私有属性，也可以体现类与类之间的包含关系
         */

        /*
            内部类的分类：
            定义在外部类局部位置上（比如方法内）:
            1)局部内部类(有类名)
            2)匿名内部类(没有类名！！！)

            定义在外部类的成员位置上：
            1)成员内部类(没用static修饰)
            2)静态内部类(使用static修饰)
         */
    }
}

class Outer {

    private int n1 = 100;// 属性

    public Outer(int n1) {//构造器
        this.n1 = n1;
    }

    public void m1() {  //方法
        System.out.println("m1()");
    }

    {   //代码块
        System.out.println("代码块...");
    }

    class Inner {   //内部类 在Outer类的内部

    }
}